Xunit এবং NUnit হল জনপ্রিয় দুটি .NET Testing Framework, যা ASP.NET Core এবং অন্যান্য .NET অ্যাপ্লিকেশনের ইউনিট টেস্টিং (Unit Testing) করতে ব্যবহৃত হয়। ইউনিট টেস্টিং হল একটি প্রক্রিয়া যেখানে পৃথক কোড ইউনিট বা ফাংশন পরীক্ষা করা হয় যাতে নিশ্চিত করা যায় যে তারা সঠিকভাবে কাজ করছে। চলুন, এই দুটি টেস্টিং ফ্রেমওয়ার্ক সম্পর্কে বিস্তারিত জানি।
Xunit একটি আধুনিক, ওপেন সোর্স এবং মাল্টিপারপাস ইউনিট টেস্টিং ফ্রেমওয়ার্ক। এটি মূলত .NET Core এবং .NET Framework অ্যাপ্লিকেশনে টেস্টিং করার জন্য ডিজাইন করা হয়েছে। Xunit টেস্টগুলি সাধারণত সহজ, পরিষ্কার এবং ফ্লেক্সিবল হয়, যা একাধিক প্ল্যাটফর্মে সমর্থন করে।
public class CalculatorTests
{
[Fact] // Single test method
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var calculator = new Calculator();
var result = calculator.Add(2, 3);
Assert.Equal(5, result);
}
[Theory] // Multiple test cases with data
[InlineData(2, 3, 5)]
[InlineData(4, 5, 9)]
public void Add_TwoNumbers_ReturnsCorrectSum(int a, int b, int expected)
{
var calculator = new Calculator();
var result = calculator.Add(a, b);
Assert.Equal(expected, result);
}
}
এখানে, [Fact]
একক টেস্ট মেথডের জন্য এবং [Theory]
ডেটা-ড্রিভেন টেস্টের জন্য ব্যবহৃত হয়।
NUnit একসময় ছিল সবচেয়ে জনপ্রিয় .NET টেস্টিং ফ্রেমওয়ার্ক। এটি মূলত .NET Framework এর জন্য তৈরি হলেও, বর্তমানে .NET Core এবং .NET 5/6 এর জন্যও সমর্থিত। NUnit স্বতন্ত্রভাবে টেস্ট মেথড এবং টেস্ট ক্লাস পরিচালনা করতে সক্ষম এবং এর সাথে রয়েছে উন্নত ফিচার যেমন, টেস্ট প্যারামিটারাইজেশন, ডেটা-ড্রিভেন টেস্টিং এবং টেস্ট কনফিগারেশন।
Assert.That
দিয়ে উন্নত এবং পরিষ্কার assertions লেখা যায়।[TestFixture]
public class CalculatorTests
{
[Test] // Single test method
public void Add_TwoNumbers_ReturnsCorrectSum()
{
var calculator = new Calculator();
var result = calculator.Add(2, 3);
Assert.AreEqual(5, result);
}
[TestCase(2, 3, 5)] // Data-driven test
[TestCase(4, 5, 9)]
public void Add_TwoNumbers_ReturnsCorrectSum(int a, int b, int expected)
{
var calculator = new Calculator();
var result = calculator.Add(a, b);
Assert.AreEqual(expected, result);
}
}
এখানে, [Test]
সাধারণ টেস্টের জন্য এবং [TestCase]
ডেটা-ড্রিভেন টেস্টের জন্য ব্যবহৃত হয়।
ফিচার | Xunit | NUnit |
---|---|---|
Parallel Testing | সোজা প্যারালাল টেস্টিং সমর্থিত | প্যারালাল টেস্টিং জন্য নির্দিষ্ট কনফিগারেশন প্রয়োজন |
Data-Driven Testing | Theory এবং InlineData দিয়ে সমর্থিত | TestCase অ্যাট্রিবিউট দিয়ে সমর্থিত |
Setup and Teardown | Dispose এর মাধ্যমে | SetUp এবং TearDown অ্যাট্রিবিউট দিয়ে সমর্থিত |
Testing Style | সহজ এবং আধুনিক | বিস্তৃত এবং শক্তিশালী |
Test Runner | Xunit টেস্ট রান্নার জন্য dotnet test | NUnit টেস্ট রান্নার জন্য nunit-console |
Xunit এবং NUnit দুটোই শক্তিশালী এবং জনপ্রিয় টেস্টিং ফ্রেমওয়ার্ক, কিন্তু তাদের মধ্যে কিছু গুরুত্বপূর্ণ পার্থক্য রয়েছে। Xunit অধিক আধুনিক এবং বেশি কার্যকরী প্যারালাল টেস্টিং এবং ডেটা-ড্রিভেন টেস্টিং সরবরাহ করে, যেখানে NUnit টেস্ট কনফিগারেশন, ডেটা প্যারামিটারাইজেশন এবং টেস্ট সেটআপ এবং টিয়ারডাউন ব্যবস্থাপনায় বেশি বৈশিষ্ট্য সমর্থন করে। কোন ফ্রেমওয়ার্ক ব্যবহার করবেন, তা নির্ভর করবে আপনার প্রকল্পের প্রয়োজনীয়তা এবং টেস্টিং স্টাইলের উপর।
common.read_more